<template>
	<view>
		<view class="order_type">
			<view class="con_auto">
				<u-radio-group v-model="searchForm.buyType" placement="row" @change="groupChange">
					<u-radio label="现金购买" name="money" :customStyle="{ marginRight: '20rpx' }"></u-radio>
					<u-radio label="积分购买" name="jf"></u-radio>
				</u-radio-group>
			</view>
		</view>
		<view class="goods-section">
			<view class="g-item">
				<image :src="httpbaseUrl + listData.url"></image>
				<view class="right">
					<text class="title clamp">{{ listData.title }}</text>
					<text class="spec" v-if="listData.specification == 2">
						<block v-for="(item, index) in listData.sku" :key="index">
							<block v-for="(vv, ii) in item.list" :key="ii">
								<block v-if="vv.flag">
									<text style="margin-right: 10rpx">{{ vv.name }}</text>
								</block>
							</block>
						</block>
					</text>
					<view class="price-box">
						<text class="price" v-if="searchForm.buyType == 'jf'">{{ listData.sale_integral }}分</text>
						<text class="price" v-if="searchForm.buyType == 'money'">{{ listData.price }}</text>
						<text class="number">x 1</text>
					</view>
				</view>
			</view>
		</view>

		<!-- 金额明细 -->
		<view class="yt-list">
			<view class="yt-list-cell b-b" v-if="searchForm.buyType == 'jf'">
				<text class="cell-tit clamp">所需要积分</text>
				<text class="cell-tip">{{ listData.sale_integral }}分</text>
			</view>
			<view class="yt-list-cell b-b" v-if="searchForm.buyType == 'jf'">
				<text class="cell-tit clamp">剩余积分</text>
				<text class="cell-tip">{{ integral }}分</text>
			</view>
			<view class="yt-list-cell b-b">
				<text class="cell-tit clamp">商品金额</text>
				<text class="cell-tip">￥{{ listData.price }}</text>
			</view>
			<view class="yt-list-cell b-b" v-if="searchForm.buyType == 'money'">
				<text class="cell-tit clamp">优惠金额</text>
				<text class="cell-tip red">￥{{ listData.cost_price - listData.price }}</text>
			</view>
			<view class="yt-list-cell b-b">
				<text class="cell-tit clamp">运费</text>
				<text class="cell-tip">免运费</text>
			</view>
			<view class="yt-list-cell desc-cell">
				<text class="cell-tit clamp">备注</text>
				<input class="desc" type="text" v-model="searchForm.mark" placeholder="请填写备注信息" placeholder-class="placeholder" />
			</view>
		</view>

		<!-- 底部 -->
		<view class="footer">
			<view class="price-content">
				<block v-if="searchForm.buyType == 'money'">
					<text>实付款</text>
					<text class="price-tip">￥</text>
					<text class="price">{{ listData.price }}</text>
				</block>
				<block v-if="searchForm.buyType == 'jf'">
					<text>所需积分</text>
					<text class="price-tip">{{ listData.sale_integral }}</text>
					<text class="price">分</text>
				</block>
			</view>
			<text
				class="submit"
				@click="submit"
				:style="{
					background: disabledBtn === false ? '#fa436a' : 'rgba(51,51,51,0.5)'
				}"
			>
				提交订单
			</text>
		</view>

		<u-datetime-picker
			:show="showTime"
			@cancel="showTime = false"
			@confirm="submitOrder"
			title="到店时间"
			:minDate="minDate"
			v-model="searchForm.localTime"
			mode="datetime"
		></u-datetime-picker>
	</view>
</template>

<script>
export default {
	data() {
		return {
			maskState: 0, //优惠券面板显示状态
			desc: '', //备注
			payType: 1, //1微信 2支付宝

			searchForm: {
				buyType: 'money',
				id: 0,
				mark: '',
				localTime: Number(new Date())
			},
			listData: [],
			showTime: false,
			minDate: Date.now(),
			minHour: 10,
			maxHour: 20,
			integral: 0,
			disabledBtn: false
		};
	},
	onLoad({ id }) {
		//商品数据
		if (id) {
			this.searchForm.id = id;
		}
		this.$initConfig().then(_=>{
			this.getUserIntegral();
		})
		this.getInfo();
		
	},
	methods: {
		submit() {
			if (!this.disabledBtn) {
				this.showTime = true;
			}
		},
		groupChange(e) {
			if (e == 'jf') {
				if (this.integral < this.listData.sale_integral) {
					this.disabledBtn = true;
				} else {
					this.disabledBtn = false;
				}
			} else {
				this.disabledBtn = false;
			}
		},
		getUserIntegral() {
			let _this = this;
			_this.$http('user/getUserIntegral').then((res) => {
				if (res.code) {
					this.integral = res.data.integral;
				}
			});
		},
		submitOrder({ value, mode }) {
			let _this = this;
			uni.showLoading({
				title: '生成中...',
				mask: true
			});
			_this
				.$http('order/create_order', {
					reservation_time: value / 1000,
					..._this.searchForm
				})
				.then((res) => {
					if (res.code) {
						uni.$u.toast('预约成功');
						setTimeout(() => {
							uni.reLaunch({
								url: '/pages/shop/create_success/create_success'
							});
						}, 1000);
					}
				});
		},
		getInfo() {
			let _this = this;
			_this
				.$http('goods/getGoodsInfoDetail', {
					..._this.searchForm
				})
				.then((res) => {
					if (res.code) {
						_this.listData = res.data;
					}
				});
		},
		//显示优惠券面板
		toggleMask(type) {
			let timer = type === 'show' ? 10 : 300;
			let state = type === 'show' ? 1 : 0;
			this.maskState = 2;
			setTimeout(() => {
				this.maskState = state;
			}, timer);
		},
		numberChange(data) {
			this.number = data.number;
		},
		changePayType(type) {
			this.payType = type;
		},
		// submit() {
		// 	uni.redirectTo({
		// 		url: '/pages/money/pay'
		// 	});
		// },
		stopPrevent() {}
	}
};
</script>

<style lang="scss">
page {
	background: $page-color-base;
	padding-bottom: 100upx;
}
.order_type {
	background: #fff;
	padding: 20rpx 0;
}
.address-section {
	padding: 30upx 0;
	background: #fff;
	position: relative;

	.order-content {
		display: flex;
		align-items: center;
	}

	.icon-shouhuodizhi {
		flex-shrink: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 90upx;
		color: #888;
		font-size: 44upx;
	}

	.cen {
		display: flex;
		flex-direction: column;
		flex: 1;
		font-size: 28upx;
		color: $font-color-dark;
	}

	.name {
		font-size: 34upx;
		margin-right: 24upx;
	}

	.address {
		margin-top: 16upx;
		margin-right: 20upx;
		color: $font-color-light;
	}

	.icon-you {
		font-size: 32upx;
		color: $font-color-light;
		margin-right: 30upx;
	}

	.a-bg {
		position: absolute;
		left: 0;
		bottom: 0;
		display: block;
		width: 100%;
		height: 5upx;
	}
}

.goods-section {
	margin-top: 16upx;
	padding-top: 16rpx;
	background: #fff;
	padding-bottom: 1px;

	.g-header {
		display: flex;
		align-items: center;
		height: 84upx;
		padding: 0 30upx;
		position: relative;
	}

	.logo {
		display: block;
		width: 50upx;
		height: 50upx;
		border-radius: 100px;
	}

	.name {
		font-size: 30upx;
		color: $font-color-base;
		margin-left: 24upx;
	}

	.g-item {
		display: flex;
		margin: 20upx 30upx;

		image {
			flex-shrink: 0;
			display: block;
			width: 140upx;
			height: 140upx;
			border-radius: 4upx;
		}

		.right {
			flex: 1;
			padding-left: 24upx;
			overflow: hidden;
		}

		.title {
			font-size: 30upx;
			color: $font-color-dark;
		}

		.spec {
			font-size: 26upx;
			color: $font-color-light;
		}

		.price-box {
			display: flex;
			align-items: center;
			font-size: 32upx;
			color: $font-color-dark;
			padding-top: 10upx;

			.price {
				margin-bottom: 4upx;
			}
			.number {
				font-size: 26upx;
				color: $font-color-base;
				margin-left: 20upx;
			}
		}

		.step-box {
			position: relative;
		}
	}
}
.yt-list {
	margin-top: 16upx;
	background: #fff;
}

.yt-list-cell {
	display: flex;
	align-items: center;
	padding: 10upx 30upx 10upx 40upx;
	line-height: 70upx;
	position: relative;

	&.cell-hover {
		background: #fafafa;
	}

	&.b-b:after {
		left: 30upx;
	}

	.cell-icon {
		height: 32upx;
		width: 32upx;
		font-size: 22upx;
		color: #fff;
		text-align: center;
		line-height: 32upx;
		background: #f85e52;
		border-radius: 4upx;
		margin-right: 12upx;

		&.hb {
			background: #ffaa0e;
		}

		&.lpk {
			background: #3ab54a;
		}
	}

	.cell-more {
		align-self: center;
		font-size: 24upx;
		color: $font-color-light;
		margin-left: 8upx;
		margin-right: -10upx;
	}

	.cell-tit {
		flex: 1;
		font-size: 26upx;
		color: $font-color-light;
		margin-right: 10upx;
	}

	.cell-tip {
		font-size: 26upx;
		color: $font-color-dark;

		&.disabled {
			color: $font-color-light;
		}

		&.active {
			color: $base-color;
		}
		&.red {
			color: $base-color;
		}
	}

	&.desc-cell {
		.cell-tit {
			max-width: 90upx;
		}
	}

	.desc {
		flex: 1;
		font-size: $font-base;
		color: $font-color-dark;
	}
}

/* 支付列表 */
.pay-list {
	padding-left: 40upx;
	margin-top: 16upx;
	background: #fff;
	.pay-item {
		display: flex;
		align-items: center;
		padding-right: 20upx;
		line-height: 1;
		height: 110upx;
		position: relative;
	}
	.icon-weixinzhifu {
		width: 80upx;
		font-size: 40upx;
		color: #6bcc03;
	}
	.icon-alipay {
		width: 80upx;
		font-size: 40upx;
		color: #06b4fd;
	}
	.icon-xuanzhong2 {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 60upx;
		height: 60upx;
		font-size: 40upx;
		color: $base-color;
	}
	.tit {
		font-size: 32upx;
		color: $font-color-dark;
		flex: 1;
	}
}

.footer {
	position: fixed;
	left: 0;
	bottom: 0;
	z-index: 995;
	display: flex;
	align-items: center;
	width: 100%;
	height: 90upx;
	justify-content: space-between;
	font-size: 30upx;
	background-color: #fff;
	z-index: 998;
	color: $font-color-base;
	box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1);
	.price-content {
		padding-left: 30upx;
	}
	.price-tip {
		color: $base-color;
		margin-left: 8upx;
	}
	.price {
		font-size: 36upx;
		color: $base-color;
	}
	.submit {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 280upx;
		height: 100%;
		color: #fff;
		font-size: 32upx;
		background-color: $base-color;
	}
}

/* 优惠券面板 */
.mask {
	display: flex;
	align-items: flex-end;
	position: fixed;
	left: 0;
	top: var(--window-top);
	bottom: 0;
	width: 100%;
	background: rgba(0, 0, 0, 0);
	z-index: 9995;
	transition: 0.3s;

	.mask-content {
		width: 100%;
		min-height: 30vh;
		max-height: 70vh;
		background: #f3f3f3;
		transform: translateY(100%);
		transition: 0.3s;
		overflow-y: scroll;
	}
	&.none {
		display: none;
	}
	&.show {
		background: rgba(0, 0, 0, 0.4);

		.mask-content {
			transform: translateY(0);
		}
	}
}

/* 优惠券列表 */
.coupon-item {
	display: flex;
	flex-direction: column;
	margin: 20upx 24upx;
	background: #fff;
	.con {
		display: flex;
		align-items: center;
		position: relative;
		height: 120upx;
		padding: 0 30upx;
		&:after {
			position: absolute;
			left: 0;
			bottom: 0;
			content: '';
			width: 100%;
			height: 0;
			border-bottom: 1px dashed #f3f3f3;
			transform: scaleY(50%);
		}
	}
	.left {
		display: flex;
		flex-direction: column;
		justify-content: center;
		flex: 1;
		overflow: hidden;
		height: 100upx;
	}
	.title {
		font-size: 32upx;
		color: $font-color-dark;
		margin-bottom: 10upx;
	}
	.time {
		font-size: 24upx;
		color: $font-color-light;
	}
	.right {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		font-size: 26upx;
		color: $font-color-base;
		height: 100upx;
	}
	.price {
		font-size: 44upx;
		color: $base-color;
		&:before {
			content: '￥';
			font-size: 34upx;
		}
	}
	.tips {
		font-size: 24upx;
		color: $font-color-light;
		line-height: 60upx;
		padding-left: 30upx;
	}
	.circle {
		position: absolute;
		left: -6upx;
		bottom: -10upx;
		z-index: 10;
		width: 20upx;
		height: 20upx;
		background: #f3f3f3;
		border-radius: 100px;
		&.r {
			left: auto;
			right: -6upx;
		}
	}
}
</style>
